package com.alks.function.service.produce;

import com.alks.entity.data.entity.PcCuttingDispatchOther;
import com.alks.entity.data.page.PageParam;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.dto.produce.DispatchTempDto;
import com.alks.function.data.request.produce.*;

import java.util.List;
import java.util.Map;

/**
 * @author MS
 * @since 2024/7/3上午11:52
 */
public interface ISuppDispatchService {
    /**
     * 首页查询-分页可条件查询
     * @param request     查询条件
     * @param processCode 工艺ID
     * @return 返回结果
     */
    ResponseInfo suppDispatchHeadQuery(DisOthHeadRequest request, String processCode);

    /**
     * 首页明细查询-分页可条件查询
     * @param request 查询条件
     * @param processCode 工艺ID
     * @return 返回结果
     */
    ResponseInfo suppDispatchDetailQuery(DispatchOtherFindRequest request, String processCode);

    /**
     * 派工表单查询-条件查询
     *
     * @param request     查询条件
     * @param processCode
     * @return 返回结果
     */
    Map<String, Map<String, List<DispatchTempDto>>> suppDispatchTempQuery(DisOthTempRequest request, String processCode);

    /**
     * 派工单打印-条件查询
     * @param request  查询条件
     * @param processCode  工艺ID
     * @return 打印所需数据
     */
    ResponseInfo suppDispatchPrintQuery(SuppDispatchPrintRequest request, String processCode);

    /**
     * 手工人员查询-可条件查询
     *
     * @param searchKey   查询条件
     * @param processCode
     * @return 返回结果
     */
    ResponseInfo suppDispatchEmpQuery(String searchKey, String processCode);

    /**
     * 首页查询-分页可条件查询
     *
     * @param slipNo      查询条件
     * @param request
     * @param processCode
     * @return 返回结果
     */
    ResponseInfo suppDispatchSlipNoBack(String slipNo, PageParam request, String processCode);

    /**
     * 工艺回显-回显
     *
     * @param slipNo      补单号
     * @param process     工艺
     * @param processCode 工艺ID
     * @return 工艺
     */
    List<String> suppDispatchTempProcessBack(String slipNo, String process, String processCode);

    /**
     * 号码回显-回显
     * @param slipNo 补单号
     * @param sizeNo 号码
     * @param processCode 工艺ID
     * @return 号码
     */
    ResponseInfo suppDispatchTempSizeBack(String slipNo, String sizeNo, String processCode);

    /**
     * 派工-新增
     *
     * @param request     派工单
     * @param processCode 工艺ID
     * @return 返回结果
     */
    String suppDispatchAdd(SuppDispatchRequest request, String processCode);

    /**
     * 派工单删除-删除
     * @param request 派工单
     * @param processCode 工艺ID
     * @return 返回结果
     */
    ResponseInfo suppDispatchDelete(List<PcCuttingDispatchOther> request, String processCode);

}
